import type { AxiosResponse } from 'axios';
export * as NUserApi from './user-api';

/**
 * 接口响应体格式
 */
export interface IApiResult<GData = any> {
  /**
   * 响应编码
   */
  code: number;
  /**
   * 响应信息
   */
  msg: string;
  /**
   * 响应数据
   */
  data: GData;
}

/**
 * 分页查询响应数据格式
 */
export interface IPagingRes<GRecord = any> {
  /**
   * 当前页
   */
  pageNum: number;
  /**
   * 每页数量
   */
  pageSize: number;
  /**
   * 总页数
   */
  pageTotal: number;
  /**
   * 总条数
   */
  totalNum: number;
  /**
   * 查询到的数据列表
   */
  records: Array<GRecord> | null;
}

/**
 * 分页数据请求必须参数
 */
export interface IPagingReq {
  /**
   * 当前页
   */
  pageNum: number;
  /**
   * 每页条数
   */
  pageSize: number;
}

/**
 * 通用数据响应
 */
export type TPromiseApiResult<GData = any> = Promise<AxiosResponse<IApiResult<GData>>>;
/**
 * 列表数据响应
 */
export type TPromiseApiResults<GData = any> = Promise<AxiosResponse<IApiResult<Array<GData>>>>;
/**
 * 分页数据响应
 */
export type TPromisePagingResult<GRecord = any> = Promise<
  AxiosResponse<IApiResult<IPagingRes<GRecord>>>
>;

/**
 * 非标准的响应数据
 */
export type TPromiseNonstandardResult<GData = any> = Promise<AxiosResponse<GData>>;
